<?php
/**
 * Created by PhpStorm.
 * User: 颖inv
 * Date: 2016/11/2
 * Time: 20:26
 */
header('content-type:text/html;charset=utf-8');
$link=mysqli_connect('localhost','root','') or die('数据库连接失败！');
mysqli_query($link,'set names utf8');
mysqli_query($link,'use itcast') or die('itcast数据库不存在！');

//下拉列表
$city=array('北京','上海','广州','其他');
//复选框
$skill=array('HTML','JavaScript','PHP','C++');
$id=1;

//判断表单是否提交
if(!empty($_POST)){
    //显示接收到的表单数据
    var_dump($_POST);
    $field=array('nickname','gender','email','qq','url','city','skill','description');
    foreach ($field as $v){
        $save_data[$v]=isset($_POST[$v]) ? $_POST[$v]:'';
    }
    //单选框处理
    if ($save_data['gender'!='男'] && $save_data['gender']!='女'){
        die('保存失败：未选择性别。');
    }
    //下拉菜单处理
    if ($save_data['city']!='未选择' && !in_array($save_data['city'],$city)){
        die('保存失败：您填写的城市不在允许的城市列表中。');
    }
    //复选框处理
    if (is_array($save_data['skill'])){
        //只取出合法的数组元素
        $save_data['skill']=array_intersect($skill,$save_data['skill']);
        //将数组转换为用逗号分隔的字符串
        $save_data['skill']=implode(',',$save_data['skill']);
    }else{
        $save_data['skill']='';
    }
    //通过循环数组，自动拼接SQL语句，保存在数据库中
    $sql="update `userinfo` set";
    foreach($save_data as $k=>$v){
        $sql.="`$k`='".mysqli_real_escape_string($link,$v)."',";
    }
    //rtrim($sql,','）用于去除$sql中的最后一个逗号
    $sql=rtrim($sql,',')." where id=$id";
    $rst=mysqli_query($link,$sql);
    //输出结果和调试信息
    echo $rst ? "保存成功：$sql" : "保存失败：$sql<br>".mysqli_error($link);
}
//执行到此处表示表单没有提交，程序将根据id查询用户信息并显示到表单
$sql="select `nickname`,`gender`,`email`,`qq`,`url`,`city`,`skill`,`description` from `userinfo` where `id`=$id";
$rst=mysqli_query($link,$sql);
if (!$rst) die(mysqli_error($link));
$data=mysqli_fetch_assoc($rst);

//将skill字段通过“，”分隔符转换为数组
$data['skill'] = explode(',',$data['skill']);

define('APP','itcast');
require 'profile_html.php';